return flags;
}
+static void
+add_tab_position_style_class (GtkStyleContext *context,
+ gint tab_pos)
+{
+ switch (tab_pos)
+ {
+ case GTK_POS_TOP:
+ gtk_style_context_add_class (context, GTK_STYLE_CLASS_TOP);
+ break;
+ case GTK_POS_BOTTOM:
+ gtk_style_context_add_class (context, GTK_STYLE_CLASS_BOTTOM);
+ break;
+ case GTK_POS_LEFT:
+ gtk_style_context_add_class (context, GTK_STYLE_CLASS_LEFT);
+ break;
+ case GTK_POS_RIGHT:
+ gtk_style_context_add_class (context, GTK_STYLE_CLASS_RIGHT);
+ break;
+ default:
+ break;
+ }
+}
+
static GtkStateFlags
notebook_tab_prepare_style_context (GtkNotebook *notebook,
GtkNotebookPage *page,
flags = _gtk_notebook_get_tab_flags (notebook, page);
gtk_style_context_add_region (context, GTK_STYLE_REGION_TAB, flags);
-
- switch (tab_pos)
- {
- case GTK_POS_TOP:
- gtk_style_context_add_class (context, GTK_STYLE_CLASS_TOP);
- break;
- case GTK_POS_BOTTOM:
- gtk_style_context_add_class (context, GTK_STYLE_CLASS_BOTTOM);
- break;
- case GTK_POS_LEFT:
- gtk_style_context_add_class (context, GTK_STYLE_CLASS_LEFT);
- break;
- case GTK_POS_RIGHT:
- gtk_style_context_add_class (context, GTK_STYLE_CLASS_RIGHT);
- break;
- default:
- break;
- }
+ add_tab_position_style_class (context, tab_pos);
return state;
}
header_height = height;
gtk_style_context_save (context);
+ add_tab_position_style_class (context, tab_pos);
switch (tab_pos)
{
case GTK_POS_TOP:
- gtk_style_context_add_class (context, GTK_STYLE_CLASS_TOP);
y += page->allocation.height;
height -= page->allocation.height;
header_height = page->allocation.height;
break;
case GTK_POS_BOTTOM:
- gtk_style_context_add_class (context, GTK_STYLE_CLASS_BOTTOM);
height -= page->allocation.height;
header_y += height;
header_height = page->allocation.height;
break;
case GTK_POS_LEFT:
- gtk_style_context_add_class (context, GTK_STYLE_CLASS_LEFT);
x += page->allocation.width;
width -= page->allocation.width;
header_width = page->allocation.width;
break;
case GTK_POS_RIGHT:
- gtk_style_context_add_class (context, GTK_STYLE_CLASS_RIGHT);
width -= page->allocation.width;
header_width = page->allocation.width;
header_x += width;
"has-tab-gap", &has_tab_gap,
NULL);
+ if (priv->show_tabs)
+ add_tab_position_style_class (context, tab_pos);
+
if (priv->show_border)
gtk_style_context_add_class (context, GTK_STYLE_CLASS_FRAME);
--- /dev/null
+@import "reset-to-defaults.css";
+
+* {
+ color: transparent;
+}
+
+.notebook.frame,
+.notebook.header.frame {
+ border: 1px solid tomato;
+}
+
+.reference.notebook.frame.bottom {
+ border-bottom-style: none;
+}
+
+.reference.notebook.header.frame.bottom {
+ border-top-style: none;
+ border-bottom-style: solid;
+}
+
+.test.notebook.frame.top {
+ border-top-style: none;
+}
+
+.test.notebook.header.frame.top {
+ border-top-style: solid;
+ border-bottom-style: none;
+}
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.18.1 -->
+<interface>
+ <requires lib="gtk+" version="3.12"/>
+ <object class="GtkWindow" id="window1">
+ <property name="can_focus">False</property>
+ <property name="type">popup</property>
+ <child>
+ <object class="GtkNotebook" id="notebook1">
+ <property name="width_request">50</property>
+ <property name="height_request">50</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="tab_pos">bottom</property>
+ <style>
+ <class name="reference" />
+ </style>
+ <child>
+ <object class="GtkLabel" id="label2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Contents</property>
+ </object>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Tab</property>
+ </object>
+ <packing>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.18.1 -->
+<interface>
+ <requires lib="gtk+" version="3.12"/>
+ <object class="GtkWindow" id="window1">
+ <property name="can_focus">False</property>
+ <property name="type">popup</property>
+ <child>
+ <object class="GtkNotebook" id="notebook1">
+ <property name="width_request">50</property>
+ <property name="height_request">50</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <style>
+ <class name="test" />
+ </style>
+ <child>
+ <object class="GtkLabel" id="label2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Contents</property>
+ </object>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Tab</property>
+ </object>
+ <packing>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>